import request from '@/utils/request'

// 获取系统通知列表（支持分页和模糊搜索）
export const getNotificationList = (data: { 
  page?: number
  limit?: number 
  keyword?: string
}) => {
  return request({
    url: '/notification/list',
    method: 'POST',
    data
  })
}

// 获取系统通知列表（无分页，支持模糊搜索）
export const getNotificationListAll = (data: { 
  keyword?: string
}) => {
  return request({
    url: '/notification/listAll',
    method: 'POST',
    data
  })
}

// 获取最新系统通知
export const getLatestNotifications = (data: { 
  limit?: number 
}) => {
  return request({
    url: '/notification/latest',
    method: 'POST',
    data
  })
}

// 创建系统通知（管理员功能）
export const createNotification = (data: { 
  title: string
  content: string
  type?: string
  receive_user_ids?: number[] | null
}) => {
  return request({
    url: '/notification/create',
    method: 'POST',
    data
  })
}

// 编辑系统通知（管理员功能）
export const editNotification = (data: { 
  notification_id: number
  title?: string
  content?: string
  type?: string
  receive_user_ids?: number[] | null
}) => {
  return request({
    url: '/notification/edit',
    method: 'POST',
    data
  })
}

// 发送系统通知（管理员功能）
export const sendNotification = (data: { 
  notification_id: number
}) => {
  return request({
    url: '/notification/send',
    method: 'POST',
    data
  })
}

// 批量发送系统通知（管理员功能）
export const batchSendNotifications = (data: { 
  notification_ids: number[]
}) => {
  return request({
    url: '/notification/batch-send',
    method: 'POST',
    data
  })
}

// 删除系统通知（管理员功能）
export const deleteNotification = (data: { 
  notification_id: number
}) => {
  return request({
    url: '/notification/delete',
    method: 'POST',
    data
  })
}

// 批量删除系统通知（管理员功能）
export const batchDeleteNotifications = (data: { 
  notification_ids: number[]
}) => {
  return request({
    url: '/notification/batch-delete',
    method: 'POST',
    data
  })
}

// 获取用户未读系统通知数量
export const getUnreadNotificationCount = () => {
  return request({
    url: '/notification/unread-count',
    method: 'POST'
  })
}

// 标记系统通知为已读
export const markNotificationAsRead = (data: { 
  notification_id: number
}) => {
  return request({
    url: '/notification/mark-read',
    method: 'POST',
    data
  })
}